Cómo es lógico, y debido a que estamos hablando de un prototipo, la versión actual de la herramienta no soporta
toda posible instancia de un problema de planificación. A medida que se avance en el desarrollo, se 
incorporarán nuevas características para ampliar el subconjunto de problemas de planificación que se puedan 
resolver.

Desde el punto de vista de las tareas, el enfoque adoptado es ``non-preemptive scheduling'' \cite{HCP_22}, 
por el cual una tarea debe ser ejecutada desde el principio hasta el final sin interrupciones. Este es el
enfoque más sencillo, pues puede ser fácilmente representado mediante tres variables:

\begin{itemize}
 \item Instante de ejecución inicial mínimo $(minStart)$. Instante mínimo en el cual la tarea puede empezar.
 \item Instante de ejecución final máximo $(maxEnd)$. Instante máximo en el cual una tarea puede terminar.
 \item Duración de la ejecución de la tarea $(lenght)$.
\end{itemize}

De tal forma que el intervalo $[minStart,maxEnd]$ se conoce cómo ventana temporal de ejecución de 
la tarea. Así, supongamos que $start$ es el instante de inicio de ejecución de la tarea, y $end$ el instante de
finalización de la tarea, se tiene:

$$end \leq maxEnd$$
$$start \geq minStart$$
$$end = start + lenght$$

A partir de estas tres restricciones, de pueden definir relaciones de precedencia entre las tareas. Dada una tarea $T1$ y una tarea $T2$,
si $T1$ debe ser ejecutada antes que $T2$, se debe cumplir la restricción:

$$start[T1] + lenght[T1] <= start[T2]$$

o de forma análoga:

$$end[T1] <= start[T2]$$

Además de estas restricciones, la herramienta incorpora una restricción que indica el número de recursos necesarios
para que la tarea pueda ser llevada a cabo. Sea la tarea $T$, con un intervalo de ejecución $[start,end]$, sea $resoures[T]$
el número de recursos necesarios para ejecutar la tarea $T$, y la matríz tridimensional $assignment[0..max_time, 0..nTasks, 0..nResources]$,
por la que se tiene que $assignment[t,T,R] = 1 \Rightarrow$ en el instante t, la tarea T, tiene asignado el recurso R, y que
$assignment[t,T,R] = 0 \Rightarrow$ en el instante t, la tarea T, no tiene asignado el recurso R. Así, llegamos a la restricción:

$$\forall_{t\in[start,end]} \sum\limits_{i=0}^{nResources} assigment[t,T,i] = resources[T]$$

Desde el punto de vista de los recursos, el enfoque adoptado es de ``cumulative resources'' \cite{HCP_22}. Cada recurso, tiene 
un número de tareas máximo que puede llevar a cabo el mismo tiempo, lo que se domina capacidad del recurso. Así se tiene que,
para un recurso $R$, en todo instante de tiempo, el número de tareas asignadas a un recurso no puede exceder su capacidad máxima:

$$\forall_{t\in[0,maxTime]} \sum\limits_{i=0}^{nTasks} assigment[t,i,R] <= capacity[R]$$

Estos enfoques, sobre todo el adoptado en las tareas, son ampliables, de forma que se puedan modelar problemas de
planifiación más complejos. En versiones posteriores está previsto ampliar estos puntos de vista, así cómo introducir
nuevas restricciones que acerquen la herramienta a problemas reales e industriales.
  